<?php

/**
 * This is the model class for table "article_category".
 *
 * The followings are the available columns in table 'article_category':
 * @property integer $identification
 * @property string $name
 * @property string $description
 * @property string $image
 * @property integer $parent
 * @property string $url_mapping
 * @property string $note
 * @property string $insert
 * @property string $update
 * @property string $delete
 */
class ArticleCategory extends CActiveRecord
{
	public $key;
	public $parent_name;
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return ArticleCategory the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'article_category';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('name, insert', 'required'),
			array('parent', 'numerical', 'integerOnly'=>true),
			array('name, image, url_mapping', 'length', 'max'=>256),
			array('description, note, update, delete', 'safe'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('identification, name, description, image, parent, url_mapping, note, insert, update, delete', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'Article'=>array(self::HAS_MANY, 'Article', 'article_category'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'identification' => 'Identification',
			'name' => 'Name',
			'description' => 'Description',
			'image' => 'Image',
			'parent' => 'Parent',
			'url_mapping' => 'Url Mapping',
			'note' => 'Note',
			'insert' => 'Insert',
			'update' => 'Update',
			'delete' => 'Delete',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('identification',$this->identification);
		$criteria->compare('name',$this->name,true);
		$criteria->compare('description',$this->description,true);
		$criteria->compare('image',$this->image,true);
		$criteria->compare('parent',$this->parent);
		$criteria->compare('url_mapping',$this->url_mapping,true);
		$criteria->compare('note',$this->note,true);
		$criteria->compare('insert',$this->insert,true);
		$criteria->compare('update',$this->update,true);
		$criteria->compare('delete',$this->delete,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}